/*
 * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package net.micode.notes.ui;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

/**
 * 闹钟提醒的广播接收器。
 * 当闹钟触发时，该接收器会启动一个提醒活动（AlarmAlertActivity），用于显示提醒内容。
 * 这是一个轻量级的组件，主要负责将闹钟触发事件转发到具体的提醒界面。
 */
public class AlarmReceiver extends BroadcastReceiver {
    /**
     * 当接收到闹钟触发的广播时，启动提醒活动。
     * <p>
     * 该方法会在闹钟时间到达时被调用，它通过启动一个独立的任务来显示提醒内容，
     * 确保用户即使在应用未处于前台时也能看到提醒。
     *
     * @param context 上下文对象，用于启动新的活动。
     * @param intent  接收到的广播意图，包含触发提醒的相关信息。
     */
    @Override
    public void onReceive(Context context, Intent intent) {
        // 将广播意图的类设置为提醒活动（AlarmAlertActivity）
        intent.setClass(context, AlarmAlertActivity.class);

        // 添加标志，以确保活动以新任务的形式启动。
        // 这是必要的，因为广播接收器不能直接启动一个活动，除非明确指定为新任务。
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

        // 启动提醒活动，显示提醒内容。
        // 该活动会根据传入的意图（intent）显示具体的提醒信息。
        context.startActivity(intent);
    }
}